<?php
namespace app\admin\controller;
use think\Controller;
use think\Db;
use think\Request;
class Course extends Controller
{
    public function read()
    {
        $array = Db::table("course")->paginate(9);//课程分页
        $array2 = Db::table("course_classification")->select();//查询课程方向
        $array3 = Db::table("course_classification_fine")->where("category_id=1")->select();//                  执行查询操作
        $page = $array->render();                   //                                  操作分页
        //re($array);//                                                                  查看查询出来的数组
        //$this->assign("page",$page);
        //$this->assign("array",$array);
        //return view("read");
        //var_dump($page);
        $foreach["array"] = $array;
        $foreach["array2"] = $array2;
        $foreach["array3"] = $array3;
        $foreach["page"] = $page;
//        pre($array2);
            return view("read", $foreach);//                                           熏染模板
    }

    public function select()
    {
//         pre($_POST);
       $name=trim($_POST["name"]);
        if($name==""){
            $array = Db::table("course")->where("category='{$_POST["category_name"]}'")->paginate(9);    //判断name值是否为空
        }else{                                                                                           //不否为空进行模糊查询
            $array = Db::table("course")->where("
            record_name like '{$name}%' 
            or record_name like '%{$name}' 
            or record_name like '%{$name}%'  "
            )->paginate(9);
        }

//        pre($array);
        $page = $array->render();//
        $array2 = Db::table("course_classification")->select();
        $array3 = Db::table("course_classification_fine")->where("category_name='前端开发'")->select();//                  执行查询操作

        $foreach["array"] = $array;
        $foreach["array2"] = $array2;
        $foreach["array3"] = $array3;
        $foreach["page"] = $page;
//            pre($array);

        return view("select" ,$foreach);//
    }

    public function updateshow()
    {
        $array = Db::table("course")->where("id=" . $_GET["id"])->find();//查询对应的id课程
//       pre($array);                                                   //测试查看保单值
        $array1 = Db::table("course_classification_fine")->select();//                  执行查询操作

        $foreach["array"] = $array;
        $foreach["array1"] = $array1;

        return view("updateshow",$foreach );                //渲染模板


    }

    public function update()
    {
//         pre($_POST);                                     //                查看post值
        if(admin_power()){
        $id = $_POST["id"];                                                     //    变量赋值
        unset($_POST["id"]);                                            //删除post id 值
        if (Db::table("course")->where("id=$id")->update($_POST)) {      // 执行修改   然后判断执行成功是否
            return 1;
        } else {
            return 0;
        }
        }else{
            $this->error('您没有足够的权限！！');
        }

    }

    public function delete()
    {
        if(admin_power()){

        //var_dump($_GET);//                                         查看get值
        if (Db::table("course")->where("id=" . $_GET["id"])->delete()) {   //   执行删除 下面是成功或者失败的返回值
            return 1;
        } else {
            return 0;
        }
        }else{
            $this->error('您没有足够的权限！！');
        }

    }//                               已完成
    public  function change(){
//       echo  json_encode( $_POST);                                             //  查看post的值
   $array=Db::table("course_classification_fine")->where("category_name="."'{$_POST["name"]}'")->select();//根据postid 查询分类
   echo json_encode($array);
//   pre($array);
    }

    public  function AddCourseshow(){
        $array = Db::table("course_classification")->select();
        $array1 = Db::table("course_classification_fine")->where("Category_id=1")->select();//                  执行查询操作
        $foreach["array"] = $array;
        $foreach["array1"] = $array1;
        return view("addcourse",$foreach );
    }
    public  function AddCourse(){
        if(admin_power()){
            if(Db::table("course")->insert($_POST)) {                                  // 执行添加
                return 1;
            }else{
                return 0;
            }

        }else{
            $this->error('您没有足够的权限！！');
        }

//        pre($_POST);

    }

    public function adddirectionshow(){//返回添加方向页面
        return view("adddirection");
    }
    public function deletedirectionshow(){//删除添加方向页面
        $array=Db::table("course_classification")->select();
//        pre($array);
        return view("deletedirection",["array"=>$array]);
    }

    public function addclassshow(){//返回添加分类页面
        $array=Db::table("course_classification")->select();
        return view("addclassshow",["array"=>$array]);
    }

    public function deleteclassshow(){//返回删除分类页面
        $array=Db::table("course_classification")->select();//查询方向
        $array1=Db::table("course_classification_fine")->where("category_id=1")->select();//查询分类
              $foreach["array"]=$array;
              $foreach["array1"]=$array1;
        return view("deleteclassshow",$foreach);
    }

    public function directionkey(){//change事件返回方向
//pre($_POST);

     $array=   Db::table("course_classification")->field("name")->where("name="."'{$_POST["name"]}'")->find();
     if(empty($array)){
         return 0;
     }else{
         return 1;
     }

    }
    public function adddirection(){//执行添加方向
//        pre ($_POST);
        if(admin_power()){
        $array["name"]=$_POST["name"];
        if(Db::table("course_classification")->insert($array)){
            return 1;
        }else{
            return 0;
        }
        }else{
            $this->error('您没有足够的权限！！');
        }
    }
    public function deletedirection(){//执行删除方向
        if(admin_power()){
//        pre ($_POST);
                if(Db::table("course_classification")->where("id="."'{$_POST["id"]}'")->delete()){
                    return 1;
                }else{
                    return 0;
                }
            }else{
        $this->error('您没有足够的权限！！');
        }
    }


    public function addclass(){//执行添加分类
//        pre($_POST);
        if(admin_power()){
       $row=( Db::table("course_classification")->where("name='{$_POST["category_name"]}'")->find());
        $array["category_name"]=$row["name"];
        $array["category_id"]=$row["id"];
        $array["record_name"]=$_POST["record_name"];

        if(Db::table("course_classification_fine")->insert($array)){//判断是否添加成功
            return 1;
        }else{
            return 0;
        }
            }else{
        $this->error('您没有足够的权限！！');
        }

    }
    public function deleteclass(){//执行删除分类
//        pre($_POST);
        if(admin_power()){
        if(Db::table("course_classification_fine")->where("id=".$_POST["id"])->delete()){//判断是否删除成功
            return 1;
        }else{
            return 0;
        }
        }else{
            $this->error('您没有足够的权限！！');
        }
    }
    public  function chaptershow(){//查询课程章节
        $chapter= Db::table("course_chapter")->where("course_id=".$_GET["id"])->order("course_id asc")->select();//排序查询
        $course=Db::table("course")->where("id=".$_GET["id"])->find();
//        pre($chapter);
//        pre($course);
        $counts=0;
        for($ii=0;$ii<count($chapter);$ii++){
            $chapter[$ii]["file"]=Db::table("course_file")->where("course_chapter_id=".$chapter[$ii]["id"])->select();//赋值章节里面的的视屏文件
            $counts+=count($chapter[$ii]["file"]);
        }

        $foreach["count"]=count($chapter);//章节总数
        $foreach["counts"]=$counts;//课节总数
        $foreach["difficulty"]=$course["difficulty"];//难度
//        pre($chapter);
        return view("chaptershow",["foreach"=>$foreach,"chapter"=>$chapter,"course"=>$course,"course_id"=>$_GET["id"]]);
    }

    public function chapter_file_add(){
//        pre($_GET);
        return view("chapter_file_add",["chapter_id"=>$_GET["chapter_id"],"course_id"=>$_GET["course_id"]]);
    }
    public function chapter_add_true(){//添加掌机
//        pre($_POST);
        $file=request()->file("files");//获取上传的文件
        if(admin_power()){
                if($file){
                    $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
                    if($info){
                        // 成功上传后 获取上传信息8        // 输出 jpg9.
                        $array["course_chapter_id"]=$_POST["chapter_id"];
                        $array["name"]=$_POST["name"];
                        $array["url"]= "__PUBLIC__". '/uploads/'.$info->getSaveName();
                        if(Db::table("course_file")->insert($array)){//执行添加操作
                           $this->redirect(url("Course/chaptershow")."?id=".$_POST["course_id"]);
                        }
                    }else{
                        //        // 上传失败获取错误信息16.
                        echo $file->getError();
                    }
                }
            }else{
        $this->error('您没有足够的权限！！');
        }
    }
    public function chapter_course_delete(){//删除章节
//        pre($_POST);
        if(admin_power()){
        if(Request::instance()->isAjax()){//判断是否是ajax请求
        Db::startTrans();
        if(Db::table("course_file")->where("id=". $_POST["course_id"])->delete()){//执行删除操作
                          Db::commit();
                          return true;
        }else{
            Db::rollback();
            return false;
        }
        }
        }else{
            $this->error('您没有足够的权限！！');
        }
    }
    public function chapter_update(){//返回修改章节页面
        $chapter=Db::table("course_chapter")->where("id=".$_GET["chapter_id"])->find();
//        pre($chapter);
        return view("chapter_update",["chapter"=>$chapter,"course_id"=>$_GET["course_id"]]);
    }
    public function chapter_update_true(){//z执行修改操作
//        pre($_POST);
        if(admin_power()){
        $course_id=$_POST["course_id"];
        $chapter_id=$_POST["chapter_id"];//值的二次赋值
        unset($_POST["course_id"]);//删除变量
        unset($_POST["chapter_id"]);
        if(Db::table("course_chapter")->where("id=".$chapter_id)->update($_POST)){//执行删除操作
            $this->success("修改成功",url("Course/chaptershow")."?id=".$course_id,0,1);
        }else{
            $this->error("修改失败",url("Course/chaptershow")."?id=".$course_id,0,1);
        }
            }else{
        $this->error('您没有足够的权限！！');
        }
    }
    public function chapter_add(){//返回章节添加页面
        $num=Db::table("course_chapter")->where("course_id=".$_GET["course_id"])->max("chapter_number");
                return view("chapter_add",["course_id"=>$_GET["course_id"],"chapter_number"=>$num+1]);
    }
    public function chapter_add_insert(){//执行添加操作
//        pre($_POST);
        if(admin_power()){
        if(Db::table("course_chapter")->insert($_POST)){//执行添加操作
            $this->success(" 添加成功",url("Course/chaptershow")."?id=".$_POST["course_id"],0,1);
        }else{
            $this->success(" 添加成功",url("Course/chaptershow")."?id=".$_POST["course_id"],0,1);
        }
        }else{
            $this->error('您没有足够的权限！！');
        }
    }

     public function chapter_delete(){//执行删除章节
         if(admin_power()){
                if(Request::instance()->isAjax()){
                    Db::startTRans();
                    if(Db::table("course_chapter")->where("id=".$_POST["chapter_id"])->delete()){//如果删除章节成功
                        $array=Db::table("course_file")->where("course_chapter_id=".$_POST["chapter_id"])->find();
                        if(empty($array)){//查询是否存在课程文件 有 就删除
                            Db::commit();
                            return true;
                        }else{
                            if(Db::table("course_file")->where("course_chapter_id=".$_POST["chapter_id"])->delete()){//至次年删除数据文件
                                Db::commit();
                                return true;
                            }else{
                                Db::rollback();
                                return false;
                            }
                        }
                    }else{
                        Db::rollback();
                        return false;
                    }
                }
                 }else{
            $this->error('您没有足够的权限！！');
            }
        }
}


























